The type of Database decides what we shall obey.
正式進入Web API,觀其之大,於一天之內逛完,或許是件無法達成之事,欲熟稔此道,則需明瞭萬事起頭難,必須按部就班以紮穩腳步為第一優先,而於Web API中最優先之順序乃是開闢資料庫與Web API連通之道路,故此行第一站乃驛站。
欲前往驛站前,我們必先備齊三器,此三器乃可簡化我們資料庫之流通過程,亦可使驛站之資料格式化為資料庫之格式,如此方便之物,豈能不用?於「管理NuGet套件」處輸入以下文字,方可尋其套件。
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
到達驛站後,便需進行資料格式之制定,制定之法有千百種,乃選合適之法便可。此處將以冒險者公會之角度進行資料之制定,並流通至資料庫。先於驛站處制定公會基本所需之資料格式,如下:
// 於Models之資料夾設置AdventurerProfile.cs,則會自動產生之,其中AdventurerProfile內容為自行輸入
using System.ComponentModel.DataAnnotations.Schema;
namespace WepAPI.Models
{
public partial class AdventurerProfile
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)] // 自動生成
public int Id { get; set; }
public string Sigil { get; set; }
public string Name { get; set; }
public string? Race { get; set; }
public string? Class { get; set; }
public string? Dwelling { get; set; }
public DateTime Created_At { get; set; }
public DateTime? Updated_At { get; set; }
}
}
完成後,再撰寫流通資料庫之行文:
using Microsoft.EntityFrameworkCore;
namespace WepAPI.Models
{
public class GuildDbContext: DbContext
{
public GuildDbContext(DbContextOptions<GuildDbContext> options)
: base(options)
{
}
public DbSet<AdventurerProfile> AdventurersProfile { get; set;}
}
}
再於appsettings處設定欲流通之資料庫之位址:
"ConnectionStrings": {
"Default": "server=(localdb)\\MSSQLLocalDB;database=GuildDatabase;Trusted_Connection=true"
}
完事後,再回到入口處註冊其位址:
builder.Services.AddDbContext<GuildContext>(
option => option.UseSqlServer(builder.Configuration.GetConnectionString("Default")));
最終,在套件管理器主控台使用Add-Migration InitialCreate
及Update-Database
便可完成與資料庫之流通之第一步。
Red tape is always annoying.